import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
 
# 初始化Edge浏览器（确保msedgedriver.exe在PATH中，或者指定其路径）
driver = webdriver.Edge()  # 如果WebDriver不在PATH中，使用：webdriver.Edge(executable_path='path_to_msedgedriver.exe')
 
try:
    # 打开网易云课堂登录页面
    driver.get('https://study.163.com/member/login.htm')

    #点击同意
    driver.find_element_by_xpath('/html/body/div[9]/div/div[3]/span').click()
    time.sleep(2)
    
    # 等待并点击"邮箱登录"选项（假设页面已经加载完成，并且"邮箱登录"按钮可见）
    # 注意：这里的定位器可能需要根据实际页面结构进行调整

    email_login_button = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.id, 'auto-id-1731631335101'))  # 假设邮箱登录按钮有一个ID为'switch-email'
    )
    email_login_button.click()
    
    # 等待账号输入框可见并输入邮箱账号
    username_input = WebDriverWait(driver, 10).until(
        EC.visibility_of_element_located((By.id, 'auto-id-1731631338264'))  # 假设账号输入框的ID为'loginname'
    )
    username_input.send_keys('test001@126.com')
    
    # 等待密码输入框可见并输入密码
    password_input = WebDriverWait(driver, 10).until(
        EC.visibility_of_element_located((By.id, 'auto-id-1731631338267'))  # 假设密码输入框的ID为'nloginpwd'
    )
    password_input.send_keys('test12345')
    
    # 等待并取消勾选"十天内免登录"选项（如果默认勾选的话）
    remember_me_checkbox = WebDriverWait(driver, 10).until(
        EC.visibility_of_element_located((By.id, 'un-login'))  # 假设记住我选项的ID为'rememberme'
    )
    if remember_me_checkbox.is_selected():
        remember_me_checkbox.click()
    
    # 等待并点击登录按钮
    login_button = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.id, 'dologin'))  # 假设登录按钮的ID为'dologin'
    )
    login_button.click()
    
    # 可以在这里添加一些等待时间，以便观察登录结果（可选）
    time.sleep(5)
 
finally:
    # 关闭浏览器（确保即使发生异常也会关闭）
    driver.quit()